Houdini 13.0 What’s new What's new in Houdini 13

See also changes and improvements in VOPs and VEX.

Cloud rendering

New lighting workflow


  • More camera parameters are motion blurred, including focal length, aperture, window, and depth of field. Turn on Transformation motion blur in raytracing.

  • The Camera object's Projection type can now be a Lens shader. The shader is a CVEX program that generates rays from screen coordinates.


  • Instead of two checkboxes on a light for “specular” and “diffuse” contribution, the Light contribution parameters on the Light and Environment light objects specify the labels of individual BSDF components (as well as virtual direct and indirect labels) to control exactly which shading components a light contributes to. For example diffuse|volume or -diffuse & -volume. More information

    Existing files using the obsolete specular and diffuse contribution checkboxes parameters will automatically update to set the light contribution category parameter instead.

  • Specular component is now referred to in Houdini as reflect. The "specular" component type is now obsolete. BSDFs that used to default to "specular" will now default to "reflect".

  • Improved ray tracing for physical subsurface scattering (SSS). Since the quality now matches the point cloud method, and raytracing is easier to use, it is now the default on the Physical SSS VOP and Surface Model VOP.

  • A new Volume Model VOP replaces duplicated and messy contents in gallery materials not based on the Pyro shader. New volume materials replace shadow density parameters with shadow density scale. Color and density defaults are now 1.

  • The Surface Model VOP now has parameters to let you set the component labels.

  • The Cloud material in the gallery now multiplies the BSDF by the cloud color to allow you to tint the cloud in PBR.

  • Added a coat reflection label to identify layer 2 of the surface model reflections, along with export planes for this component.

  • Shaders that use multiple illuminance loops or that call diffuse(vector) will now call the light and shadow shaders separately in each illuminance loop instead of caching the lighting and shadowing values. This may decrease performance of these legacy shaders.

  • The shadow(Cl) function now always uses the P global variable for shadowing rather than the illuminance position. If you are computing shadows inside an illuminance statement that uses a shading position other than P, you must call shadow(Cl, pos, L).

  • The plastic and volume cloud shaders now use PBR just like the surface model material.

  • Added a parameter to the Hair model VOP to create a rounded appearance on the curves.

  • You can now write a CVEX BSDF that samples from a distribution that is disproportionate to its evaluation function.

  • Disabled Color limit (vm_colorlimit) clamping for direct lighting. The color limit is now only used for indirect lighting.

Images and exports

  • Extend the list of component exports (such as direct_diffuse) at run-time using a space-separated list of components in the (vm_components) property. The PBR renderer and Compute Lighting VOP now generate exports based on this list. See exporting components for more information.

  • You can automatically export image planes for all direct and indirect lighting components (diffuse, reflect, etc.), as listed in (vm_components).

  • A new configuration file MantraPlanes lists the image planes Houdini displays in the extra image plane pop-up menu. The type for each image plane is set in toolutils.py in the updatePlaneType() function.

  • Changed the default for deep camera maps to be uncomposited, for compatibility with Nuke and other compositing software.

  • Uncomposited deep images now use the same compression as composited images.

  • The gamma, gain, dither, and white point parameters are hidden by default. You can display them by adding and turning on the (vm_showextraplaneparms) property.

  • Disabled the output gamma parameter in the image save dialog and the Composite ROP when Convert to image format's color space is on.

  • Changed the default quantization to 16-bit float.


  • Polygons as subdivision (Mantra) (vm_rendersubd) property lets you render geometry as subdivision surfaces using the OpenSubdiv library.

  • Mantra now uses OpenSubdiv style creases instead of linear creases. You can revert to linear creases by setting the MANTRA_LINEAR_CREASES environment variable.

  • New Enable raytracing (vm_dicingquality) property lets you disable all dicing of subdivisions and turn off true displacements.

  • The -Qd command line option to mantra now disables dicing. The -Qf option disables depth of field.

  • Changed the default dicing z-importance from 0 to 1. This will give better (sharper) dicing quality at the expense of additional dicing in micropolygon rendering.

  • New Offscreen Quality (vm_measureoffscreenquality) property controls the reduction of quality for primitives outside the camera view. The default value is 0.25 to reduce overhead for displacements behind the camera.

  • Changed the way surface derivatives are calculated in ray tracing, leading to sharper filtering at grazing angles.

  • New (vm_rayderiverandom) property randomizes the derivative basis directions in ray tracing. This can eliminate artifacts at polygon boundaries in high-frequency bump maps.

  • New Shutter shape (vm_shuttershape) property lets you specify a curve of how much light is let into the camera aperture over the shutter open time, to simulate a mechanical shutter opening and closing. Previously mantra simulated an instantly opening, instantly closing, constant sized aperture.


  • Fixed object-level materials.

  • Show in viewport menu and Init Simulation parameters. You can turn off Show in viewport menu to exclude an OpenGL or Composite ROP from the viewport menu’s list of renderers.

  • Added display options for wireframe and particles.

  • Split the object and light masks into Candidate, Force, and Exclude as used by mantra.

  • More anti-aliasing levels on professional video cards (up to 64x).

  • Syntax coloring of GLSL shader source code.


  • Ray-tracing is now the default rendering engine in the Mantra ROP.

  • Render Region tool is more accurate on OpenGL 3 hardware.

  • You can now use mantra subdivision on polygon soup primitives.

  • New (vm_shareddisplace) property shares displacements between instances. Turn this on if the displacement does not depend on the world- or camera-space position. Use a uniform measure for the geometry to avoid view-dependent subdivision.

  • Non-IPR renders can now output the pixel sample count in the Pixel_Sample deep raster plane (this was previously only available in IPR renders).

  • Uniform volumes now work with open surfaces (such as a flat plane). Behavior at the edges of open surfaces is undefined.

  • Faster accelerator construction for multiple instances of heavy geometry.

  • More consistent filtering of geometry viewed edge on.

  • Primitive material overrides now work on Alembic primitives.


  • The RenderMan display driver supports progressive rendering.

  • Moved PRMan’s shutteropening option from the Hider to Camera for PRMan 16 and 17.

  • Added “extreme offset”, “focus region”, and bezier-style shutteropening camera options.

  • When generating RIB, pre_outputFrameCamera replaces pre_outputCamera when generating the frame’s camera. pre_outputCamera is now called for all cameras.

  • Removed binary RIB option and RIB compression options (these are no-ops in the current version).

  • Added an option to control whether to add comments to the RIB stream.